Skip to content

Add support for custom games (shard 1): initial build scaffolding - #1

Open
dejabot wants to merge 1 commit into
mainfrom
custom-games-shard-1
Open

Add support for custom games (shard 1): initial build scaffolding#1
dejabot wants to merge 1 commit into
mainfrom
custom-games-shard-1

Conversation

@dejabot

@dejabot dejabot commented Jun 30, 2026

Copy link
Copy Markdown

Add support for "custom games". Full implementation in feature/custom-games. The overall goal with this feature is to:

  1. make it easy to keep our fork of cheesy-arena up to date (easy merges) with upstream.
  2. make it easy for a developer to create a non-standard FRC-style (but not official FRC) game, without having to go through a lot of tedious mechanical changes and edits across the codebase.

We do this by a) using build tags to compile alternate code paths for a "custom" game and b) define the custom game in a YAML file and autogenerate most of the code, HTML, javascript, etc for that game. See docs/CUSTOM_GAMES.md for more details.

This PR is split into four shards.

This first shard sets up the overall scaffolding for building an alternate cheesy-arena binary through the use of Go build tags, specifically the custom tag. When the custom tag is supplied to the build, Cheesy Arena dispatches to custom versions of the UI, etc. Custom games also disable FRC game specific integrations such as TBA, Nexus, etc.

This shard is not complete in and of itself: the normal (non-custom) build is unchanged, and a -tags custom build only succeeds once shard 2 adds the generator. It sets up for the overall feature as implemented across subsequent shards:

  • shard 1: initial scaffolding for custom builds
  • shard 2: custom game YAML definition, parsing, and codegen
  • shard 3: split game logic between standard and custom games; compile and use generated sources for custom games.
  • shard 4: define and use custom game UI templates

@dejabot
dejabot requested review from rcahoon and wolffg June 30, 2026 03:03
@dejabot dejabot changed the title Add support for "custom games" in Cheesy Arena (shard 1) Add support for custom games (shard 1): initial build scaffolding Jun 30, 2026
@dejabot
dejabot force-pushed the custom-games-shard-1 branch from 134561c to 0f8df20 Compare July 14, 2026 08:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant